#include <rtthread.h>
#include "base.h"

// 临时性任务：LED闪烁一下
void led_task_entry(void *param) {    
    RT_UNUSED(param);

    led_set(LED0, 1);
    rt_thread_mdelay(200);
    led_set(LED0, 0);
    rt_thread_mdelay(200);

    led_toggle(LED1);
}

void key_task_entry(void *param) {    
    RT_UNUSED(param);

    while (1) {
        if (key_pressed()) {
            /* 创建LED心跳任务 */
            rt_thread_t led_thread = rt_thread_create(
                "led_heartbeat",
                led_task_entry,
                RT_NULL,
                4096,   // 栈大小
                0,    // 优先级
                5      // 时间片 
            );
            if (led_thread) rt_thread_startup(led_thread);
        }

        // 间隔一秒，以免太快
        rt_thread_mdelay(1000);
    }
}

/*---------------------------------------
 * 应用入口（main函数）
 *--------------------------------------*/
int main(void) {
    hardware_init(); 

    /* 创建按键检测任务 */
    rt_thread_t key_thread = rt_thread_create(
        "key_monitor",
        key_task_entry,
        RT_NULL,
        4096,   // 栈大小
        0,    // 优先级
        5      // 时间片
    );

    /* 启动所有任务 */
    if (key_thread) rt_thread_startup(key_thread);
    return 0;
}